#include "new_module.h"

void Swap(Inner* p, Inner* q)
{
    Inner t = *p;
    *p = *q;
    *q = t;
}

void ProcInners(Outter* p)
{
    // GetIndex是在其他模块中实现的，这个函数不知道GetIndex每次取出的值怎样变化
    int i = GetIndex();
    int j = GetIndex();
    if (i < 100 && j < p->innerArray[i].length) {
        p->innerArray[i].data[j] = 4;
    }

    // 交换数组中的某两个Inner struct，这两个中有可能包含i，也可能不包含
    Swap(&p->innerArray[GetIndex()], &p->innerArray[GetIndex()]);
    
    // Swap过后，这里访问的不一定和上面是同一个Inner struct了
    if (i < 100 && j < p->innerArray[i].length) {
        p->innerArray[i].data[j] = 6;
    }
}
